Revision 2 replaces the generated first pass — a 1920×1080 deck built on the Modernist template. It keeps the restrained cyberpunk character of the product and corrects both layers of fault: a guide that specified a font it never loaded and omitted status colour entirely, and an interface that consequently used colour, glow and monospace without assigning any of them a job.
Reading order. Sections 02 and 05–06 are the substance of the revision; everything else follows from them. If only one change ships, ship the colour architecture.
The single root cause. The guide never assigned jobs — it named an accent and a face, omitted status colour and monospace, and left the template's palette underneath. With nothing specified, the interface used teal, glow and monospace as decoration. Rev 2 gives each one exactly one job and forbids the rest.
Two hues, 18° apart. On a wall of tiles the operator cannot separate "this is chrome" from "this is fine".
Azure is reserved for interface. Green, amber and red belong to condition and appear nowhere else.
Azure covers no more than a tenth of any surface: active nav item, focused control, one primary button, links.
Amber and red together stay under a twentieth. If a screen exceeds it the screen is a triage list, not a dashboard.
Outer glow marks the single most severe item in view. Two glows in one region is a defect.
Why the brand moved rather than the status hue. Status green, amber and red are conventions an operator brings from every other tool; they are not ours to reassign. The brand is ours. Moving the accent to azure costs one logo revision and settles the ambiguity permanently.
Changed from Rev 1. v1 defined three swatches — accent, ink, ground — and no functional tier at all; tier 3 below is entirely new, and its absence is why the dashboard's status colours drifted. Accent teal #35E0D0 is retired to clear the status hues. Healthy mint darkens to #3DD68C so it recedes against ink. Ink-faint rises from #54687F to clear 3:1. Violet is reassigned from decoration to maintenance. The Modernist vermilion ramp is removed rather than overridden.
≥ 7:1 body text at any size.
≥ 4.5:1 body text 14px and above.
≥ 3:1 icons, chrome, 19px+ or bold 14px+.
< 3:1 prohibited — struck through above.
Ink-faint is licensed for uppercase mono labels at 10px and above only, never for prose. Status hues are legible as text on all three grounds but are used as fills and dots first, text second.
Non-colour redundancy. No state is signalled by hue alone. Every one pairs its colour with a distinct glyph and a text label, so the system survives monochrome print, deuteranopia and a sunlit tablet.
Bar, dot and icon all say "critical" in the alert; the table then says it in plain ink with no marker at all.
Severity once, as a labelled pill. The state cell always carries dot plus word, in every table.
Status is observed, never operable. Toggles, switches and sliders are reserved for controls the operator can actually change. Heartbeat, reachability and health render as indicators — a dot, a sparkbar, a timestamp — and are never drawn as a switch.
Ten healthy tiles glow as hard as the two faults. Finding the fault is a reading task, not a glance.
Healthy is structural — hairline border, no fill, no glow. The eye lands on the two exceptions immediately.
Consequence for the grid. A healthy fleet renders as a calm lattice of hairlines. Any colour on screen is information. This is what lets the same view work at three systems and at three hundred.
Two satellites are #FF3D72 — the crit red from the dashboard. Four are accent teal. The mark asserts a fleet state, and the exported PNG bakes in an outer glow and a grid plate.
One accent hue only, in the app and in every export. Six satellites reduce to three — at 16px the six read as an indistinct ring. Status colour is permitted on the satellites in one place only: the live favicon, where reporting fleet state is the intent.
A server hub with three monitor vantages — the product's actual architecture. Distinct at 16px, survives one colour, and the three satellites can carry state in the favicon.
Three arcs around a solid core — reads "solar" and "sweep". Elegant but generic; several monitoring tools already use an iris, and it says nothing about topology.
A four-cell grid echoing the fleet heatmap. Strong as a favicon and trivially scalable, but indistinguishable from a dozen dashboard products.
Monospace flattens the letterforms and widens the mark unnecessarily. The colour split on "Net" adds a second brand hue with no rationale and fails in one-colour print.
Plex Sans, weight contrast instead of colour contrast — 300 against 600. Holds the compound name, prints in one ink, and keeps the capital the product name actually carries.
Lockups to produce. Horizontal (mark + wordmark, default), stacked, mark alone (favicon, PWA icon, collapsed rail) and one-colour reversed — all four as SVG from one source path, none carrying a baked-in glow or background plate.
The dashed frame sits 2u — one third of the hub — outside the canvas on every side. No type, rule or edge enters it. In the collapsed nav rail the rail padding satisfies this; no extra inset is needed.
Under 16px the spokes disappear before the satellites do, leaving four ambiguous squares. Below that threshold use the hub alone as a solid rounded square.
Favicon behaviour. The three satellites may each take a status colour to give the browser tab and installed PWA icon an at-a-glance fleet summary: all green nominal, one amber degraded, one red fault. This is the only sanctioned recolouring of the mark.
The container competes with the mark and doubles its visual weight in the nav.
Fails in one ink and introduces a second brand hue with no defined role.
Mono is the data face. Using it for identity removes the distinction that makes it useful.
A green logo asserts fleet health. Only the favicon satellites may take state colour.
The top satellite is the orientation cue; rotating it makes the mark read as a random cluster.
Scale proportionally. The canvas is square; letterbox the space around it instead.
Also prohibited: adding an outer glow or drop shadow to the mark, placing it on a photographic background without a solid plate, reproducing it below the stated minimum, and redrawing the satellites as circles.
Navigation, buttons, headings, prose, captions, empty-state copy, alert titles, form labels, tab names, filter chips.
Hostnames, IP and MAC, ports, node IDs, metric numerals, byte and bit rates, durations, timestamps, config keys, log excerpts, certificate fingerprints.
Section label and items share one face and near one weight. Nothing leads; the eye has no entry point.
Mono survives only on the section label, where its tracking is the point. Items gain a real weight step.
Both faces must actually load. v1 imported Archivo over the network, then overrode both tokens to IBM Plex Sans and imported nothing — so the guide and the app rendered in system-ui. Self-host both families as WOFF2 subsets with @font-face and font-display:swap. No network dependency, and PDF export keeps its measurements.
Tabular figures are mandatory wherever numbers stack — tables, KPI rows, metric columns. Set font-variant-numeric: tabular-nums so digits do not shimmy as values tick.
13.5px for any sentence. 12px for values and captions. 10px for uppercase mono labels — the only step permitted below 12, and never for prose. Nothing renders under 10px.
The primary client is Safari on iPad. Every interactive row, chip, toggle and nav item keeps a 44px minimum hit box regardless of the type step inside it.
What changed. Rev 1 used 23px sans for the page title and mono uppercase for everything else. The mid-range — panel heading, row title, caption — was missing, so cards had no internal hierarchy. Steps 3 through 6 above are the addition.
One exception: status indicators are solid geometric primitives (dot, triangle, square, diamond, ring) drawn in-house on the same 24-grid. They are not icons and must not be swapped for library glyphs.
An outline nav beside a solid nav glyph reads as two states. All chrome icons are outline; only status primitives are solid.
A glyph names a thing. Its colour may follow selection, never condition — condition belongs to the adjacent status primitive.
Every icon in the collapsed rail keeps an accessible name and a tooltip on focus. Badges beside them use one shape and one colour rule.
Badge correction. Rev 1's collapsed rail carried three badges in three colours and two shapes — 88 amber, 1 green, 166 green. Badges are a single pill; red only for unacknowledged criticals, slate for everything else that is merely a count.
Nominal cards are neutral — no coloured underline, no halo. Colour appears only when the value is a fault, and the caption must agree with the number above it.
Minimum tile width 132px so element hostnames fit whole. Every tile carries the same three rows — name + dot, mono meta, sparkline — with no second variant.
Severity is stated once, as a labelled pill. Heartbeat becomes a sparkbar plus age — an indicator, not the switch Rev 1 drew. Switches are reserved for controls such as enabling a rule.
The sixth card orphans onto its own row at four-fifths of the width unused.
Four headline metrics at full weight; supporting figures drop to an inline strip that cannot orphan.
No hover-only information. The primary client is a touch device. Every value revealed on hover must also be reachable by tap, and no tooltip may be the sole source of a status, a threshold or an identifier.
The feature exists, the operator has not set it up. Name it and offer the primary action. Neutral chrome.
Configured, awaiting first report. Say what is expected and when. Slate, never a zero value.
Data exists but the filter excludes it. Restate the filter and offer to clear it. Never the same copy as the two above.
Counts must agree. Rev 1 reported 18 systems in one header and 9 in another. One count per concept, derived once, rendered everywhere from the same source — and label it with the noun above, never "nodes".
Drop the Archivo @import. Self-host Plex Sans and Plex Mono as WOFF2 @font-face subsets. Until this ships, every measurement in the guide and app is system-ui.
Introduce --font-mono and govern it. The dominant face in the product currently has no entry in the system.
Define ok, degraded, down, maintenance and unknown as tokens. Remove the leftover Modernist vermilion ramp rather than overriding it.
Mark as SVG in four lockups, no baked glow; favicon 16/32; PWA icons 192/512 plus maskable 512; Plex Sans and Plex Mono self-hosted as WOFF2 subsets. All under SIL OFL 1.1 and ISC — no licence blockers.
Trademark and usage restrictions on the SolariNet name are the owner's to state; this guide specifies visual construction only. Motion timings remain unspecified pending a decision on live-tick animation.
Standing rule. When this guide does not cover a case, apply the test that produced it: does this pixel tell the operator something they did not already know? Decoration that survives that question is fine. Decoration that cannot answer it comes out.